<!DOCTYPE html><html lang="en" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>杜鑫辉医生的博客空间</title><meta name="author" content="杜鑫辉"><meta name="copyright" content="杜鑫辉"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="杜鑫辉医生的博客空间">
<meta property="og:url" content="https://gitee.com/drduxinhui/page/5/index.html">
<meta property="og:site_name" content="杜鑫辉医生的博客空间">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://i.imgs.ovh/2023/10/04/V4AVR.th.jpeg">
<meta property="article:author" content="杜鑫辉">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://i.imgs.ovh/2023/10/04/V4AVR.th.jpeg"><link rel="shortcut icon" href="/drduxinhui/img/favicon.png"><link rel="canonical" href="https://gitee.com/drduxinhui/page/5/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/drduxinhui/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
  root: '/drduxinhui/',
  algolia: undefined,
  localSearch: undefined,
  translate: undefined,
  noticeOutdate: undefined,
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
  copy: {
    success: 'Copy successfully',
    error: 'Copy error',
    noSupport: 'The browser does not support'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: '',
  dateSuffix: {
    just: 'Just',
    min: 'minutes ago',
    hour: 'hours ago',
    day: 'days ago',
    month: 'months ago'
  },
  copyright: undefined,
  lightbox: 'fancybox',
  Snackbar: undefined,
  source: {
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
    }
  },
  isPhotoFigcaption: false,
  islazyload: false,
  isAnchor: false,
  percent: {
    toc: true,
    rightside: false,
  },
  autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
  title: '杜鑫辉医生的博客空间',
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2024-04-29 11:54:59'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(win=>{
    win.saveToLocal = {
      set: function setWithExpiry(key, value, ttl) {
        if (ttl === 0) return
        const now = new Date()
        const expiryDay = ttl * 86400000
        const item = {
          value: value,
          expiry: now.getTime() + expiryDay,
        }
        localStorage.setItem(key, JSON.stringify(item))
      },

      get: function getWithExpiry(key) {
        const itemStr = localStorage.getItem(key)

        if (!itemStr) {
          return undefined
        }
        const item = JSON.parse(itemStr)
        const now = new Date()

        if (now.getTime() > item.expiry) {
          localStorage.removeItem(key)
          return undefined
        }
        return item.value
      }
    }
  
    win.getScript = url => new Promise((resolve, reject) => {
      const script = document.createElement('script')
      script.src = url
      script.async = true
      script.onerror = reject
      script.onload = script.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        script.onload = script.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(script)
    })
  
    win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
      const link = document.createElement('link')
      link.rel = 'stylesheet'
      link.href = url
      if (id) link.id = id
      link.onerror = reject
      link.onload = link.onreadystatechange = function() {
        const loadState = this.readyState
        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
        link.onload = link.onreadystatechange = null
        resolve()
      }
      document.head.appendChild(link)
    })
  
      win.activateDarkMode = function () {
        document.documentElement.setAttribute('data-theme', 'dark')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
        }
      }
      win.activateLightMode = function () {
        document.documentElement.setAttribute('data-theme', 'light')
        if (document.querySelector('meta[name="theme-color"]') !== null) {
          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
        }
      }
      const t = saveToLocal.get('theme')
    
          if (t === 'dark') activateDarkMode()
          else if (t === 'light') activateLightMode()
        
      const asideStatus = saveToLocal.get('aside-status')
      if (asideStatus !== undefined) {
        if (asideStatus === 'hide') {
          document.documentElement.classList.add('hide-aside')
        } else {
          document.documentElement.classList.remove('hide-aside')
        }
      }
    
    const detectApple = () => {
      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
        document.documentElement.classList.add('apple')
      }
    }
    detectApple()
    })(window)</script><meta name="generator" content="Hexo 6.3.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://i.imgs.ovh/2023/10/04/V4AVR.th.jpeg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/drduxinhui/archives/"><div class="headline">Articles</div><div class="length-num">47</div></a><a href="/drduxinhui/tags/"><div class="headline">Tags</div><div class="length-num">0</div></a><a href="/drduxinhui/categories/"><div class="headline">Categories</div><div class="length-num">0</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/drduxinhui/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/drduxinhui/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header"><nav id="nav"><span id="blog-info"><a href="/drduxinhui/" title="杜鑫辉医生的博客空间"><span class="site-name">杜鑫辉医生的博客空间</span></a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/drduxinhui/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/drduxinhui/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">杜鑫辉医生的博客空间</h1><div id="site_social_icons"><a class="social-icon" href="mailto:drduxinhui@163.com" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/drduxinhui/2023/10/05/%E8%9B%8B%E7%99%BD%E7%BB%84%E5%AD%A6%E7%BB%93%E6%9E%9C%E5%88%86%E6%9E%90/" title="蛋白组学结果分析">蛋白组学结果分析</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-10-05T03:24:45.000Z" title="Created 2023-10-05 11:24:45">2023-10-05</time></span></div><div class="content">蛋白组学结果解读1.蛋白质组数据分析，数据库如何选择？
答：a) 常见的公共库有Uniprot、NCBI、和Ensembl。一般来说模式物种如人、小鼠、斑马鱼等，可以选择蛋白注释信息较为全面的Swissprot；大鼠使用Ensembl数据库；其他常见物种推荐用Uniprot，如果不是常见物种，可以选择数据库量较大的NCBI公共库。
b) 对于在Uniprot上数据库注释蛋白条目不多的物种，可以根据物种的科属种适当放大，以获得更多的蛋白组信息。
c) 需提前提供样本物种的拉丁文名，我们在数据库中搜索对应物种的拉丁名称。如果蛋白条目数目或查库结果仍不能满足需求，可再适当放大。
d) 对于数据库注释信息少，或非常见物种的，也可以选择用转录组数据库翻译后的蛋白库对质谱结果进行查库注释。
2.为什么蛋白搜库结果用NCBI 比用Uniprot要较多一些？为什么一些在NCBI中搜到的在Uniprot里面搜不到？
答： NCBI中蛋白库的信息任何一个研究者都能提交，因此NCBI中搜录的蛋白质信息较丰富，但是很多蛋白的信息是没有经过验证或人工校验就直接提交到NCBI蛋白库中的，会有很多冗余的蛋白信息（例 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/drduxinhui/2023/10/04/4X-SDS-loading-buffer-recipe-WB/" title="4X SDS loading buffer recipe (WB)">4X SDS loading buffer recipe (WB)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-10-04T03:59:57.000Z" title="Created 2023-10-04 11:59:57">2023-10-04</time></span></div><div class="content">
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/drduxinhui/2023/10/04/Western-blot-1/" title="Western blot (1)">Western blot (1)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-10-04T03:59:25.000Z" title="Created 2023-10-04 11:59:25">2023-10-04</time></span></div><div class="content">WB preparation__protein purification and quantificationMaterials
RIPA buffer (cell lysis buffer for protein purification) NaCl (S3014) 150mM Triton X-100 (T8787) 1% Sodium deoxycholate (D6750) 0.5% SDS (74255) 0.1% Tris-HCl (T1503) pH 8.0, 50 mM
BSA standards for BCA assay
Cell scrapers for adherent cells
1X PBS buffer
Protease Inhibitor Cocktail for Mammalian Tissues(Product Number P8340)
(Optional) Phosphatase Inhibitor Cocktails For Serine&#x2F;Threonine Phosphatases and L-Isozymes of Alkalin ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/drduxinhui/2023/10/04/Weekly-updates/" title="Weekly updates">Weekly updates</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-10-04T01:48:07.000Z" title="Created 2023-10-04 09:48:07">2023-10-04</time></span></div><div class="content">Weekly experiment schedules 
by Peter 2023.10.4
Experimental designs
IHC staining of target protein in osteosarcoma tumor and control (N&#x3D;10): target proteins include RPLP1, RPL23, and CBX1
WB of target protein in osteosarcoma cell lines (U2OS, MG63, and 143B, hFOB as control): target proteins include RPL23 and CBX1
Ferroptosis related factor detection in RPLP1 kd models.

General questions:
How to interpret mass spectrometry results?
Ferroptosis in osteosarcoma: where do we stand?

</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/drduxinhui/2023/10/04/2023%E6%8A%80%E8%83%BD%E6%8F%90%E5%8D%87%E5%BF%AB%E9%80%9F%E9%97%AE%E7%AD%94/" title="2023技能提升快速问答">2023技能提升快速问答</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-10-03T23:35:17.000Z" title="Created 2023-10-04 07:35:17">2023-10-04</time></span></div><div class="content">1. 数字化技术辅助下精准切除与重建的实现与评估
CT与MRI图像融合与三维建模；3D slicer， Blender， 3D builder
准备材料：多期扫描的增强CT数据，增强MRI数据


模拟手术与导板设计
3D 模块打印及其辅助下手术的实施
切除及重建精度评估

2. 基于R语言的统计分析及结果可视化展示
数据处理与转换：tidyverse
统计分析：
可视化结果展示与配色：ggpubr，ggsci
可视化结果类型：
散点图（Scatter）
柱状图（Barplot）
箱线图（Boxplot）
折线图（Lineplot）
饼图（Pieplot）
韦恩图（Vennplot）



3. 个人平台搭建–静态博客基于Hexo及gitee pages的博客搭建

下载安装git 以及 node.js
按照提示安装hexo及初始化博客
注册并实名认证gitee账户
本地构建博客并部署（hexo d）至gitee仓库

</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/drduxinhui/2023/09/24/%E6%9D%9C%E9%91%AB%E8%BE%89%E5%8C%BB%E7%94%9F%E7%AE%80%E4%BB%8B/" title="杜鑫辉医生简介">杜鑫辉医生简介</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-09-24T05:27:43.000Z" title="Created 2023-09-24 13:27:43">2023-09-24</time></span></div><div class="content">
杜鑫辉
河南省肿瘤医院骨科 副主任医师
https://orcid.org/0000-0002-7411-3214
学习经历：    2012年6月硕士毕业于上海交通大学附属第六人民医院，外科学（骨科）专业。    2017年2月至2018年12月期间在美国休斯顿贝勒医学院及Methodist   hospital访问学习。学术任职：    中国抗癌协会肉瘤专业委员会四肢学组 委员    河南省抗癌协会肉瘤专委会 常委    河南省脊柱脊髓损伤协会脊柱肿瘤委员会 秘书    河南省中西医结合学会骨伤分会骨与软组织肿瘤专业委员会委员    近年发表SCI及中华系列文章累及10余篇    Frontiers in Oncology及Cancer Medicine杂志审稿人擅长领域：    骨与软组织肉瘤及转移瘤的诊疗科研项目及成果：    主持省卫健委科技攻关项目二项    发表中英文文章20余篇，其中一作发表中华系列杂志3篇，SCI文章8篇。开展新技术6项，其中国内领先技术2项。
科研项目在研
人工智能辅助下肉瘤三维数字化建模及其临床应用的安全性及有效性研究，2024年科技攻关项目，河 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/drduxinhui/2023/09/24/%E9%AA%A8%E8%82%BF%E7%98%A4%E7%A7%91%E6%99%AE%E7%9F%A5%E8%AF%86%E9%97%AE%E7%AD%94/" title="骨肿瘤科普知识问答">骨肿瘤科普知识问答</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-09-23T23:49:51.000Z" title="Created 2023-09-24 07:49:51">2023-09-24</time></span></div><div class="content">1.	青少年骨痛是生长痛么？如果青少年出现不明原因的骨痛，可能会被当做生长痛而忽略，临床中经常见到就诊即晚期的骨肉瘤患者，这都是因为没有重视而造成的。 那么，二者如何区分呢？ 疼痛部位 生长痛多发生于肌肉，或者肌腱附着在骨的支点，以及骨骼生长部位，当青少年运动的时候，韧带反复牵拉就会使肌肉、肌腱支点出现疼痛；
2.	肿瘤活检会增加转移的风险么？不少患者一听说要做活检就十分担心，不仅仅是对手术的惧怕，更担心活检会导致癌细胞扩散和转移。 从理论上讲，对癌、瘤的任何刺激，包括针刺、切除、取活组织或其他检查，以及麻醉药物注射，甚至用力揉搓和挤压等，都可能造成癌细胞的脱落和扩散、转移。 但实际上，临床通过穿刺针带出来的肿瘤细胞非常少，远达不到在血液中循环的数量，所以造成转移的几率微乎其微。 国内外已有多项研究证实，针对恶性肿瘤的活检，导致癌症播散的概率接近于零。
3.	骨肿瘤能做微创手术进行治疗么？可以。有很多微创手段如微波消融，经皮置钉技术等。
4.	骨肿瘤做手术影响术后小孩生长发育么？儿童骨骼不同于成年人骨骼，儿童骨骼有骨骺，骨骺是骨骼生长的基础。如果儿童肿瘤影响到骨骺，要切除骨骺或者破坏骨 ...</div></div></div><nav id="pagination"><div class="pagination"><a class="extend prev" rel="prev" href="/drduxinhui/page/4/#content-inner"><i class="fas fa-chevron-left fa-fw"></i></a><a class="page-number" href="/drduxinhui/">1</a><span class="space">&hellip;</span><a class="page-number" href="/drduxinhui/page/4/#content-inner">4</a><span class="page-number current">5</span></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://i.imgs.ovh/2023/10/04/V4AVR.th.jpeg" onerror="this.onerror=null;this.src='/drduxinhui/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">杜鑫辉</div><div class="author-info__description"></div></div><div class="card-info-data site-data is-center"><a href="/drduxinhui/archives/"><div class="headline">Articles</div><div class="length-num">47</div></a><a href="/drduxinhui/tags/"><div class="headline">Tags</div><div class="length-num">0</div></a><a href="/drduxinhui/categories/"><div class="headline">Categories</div><div class="length-num">0</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/xxxxxx"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="mailto:drduxinhui@163.com" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>Announcement</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>Recent Post</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/drduxinhui/2024/04/10/R-codes/" title="R codes">R codes</a><time datetime="2024-04-10T07:07:01.000Z" title="Created 2024-04-10 15:07:01">2024-04-10</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/drduxinhui/2024/02/06/How-to-write-a-paper/" title="How to write a paper">How to write a paper</a><time datetime="2024-02-06T06:43:49.000Z" title="Created 2024-02-06 14:43:49">2024-02-06</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/drduxinhui/2024/02/05/%E4%B8%B4%E5%BA%8A%E5%A4%A7%E4%BD%93%E7%85%A7%E7%89%87/" title="临床大体照片">临床大体照片</a><time datetime="2024-02-05T09:23:33.000Z" title="Created 2024-02-05 17:23:33">2024-02-05</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/drduxinhui/2024/02/03/%E6%95%B0%E5%AD%97%E5%8C%96%E9%87%8D%E5%BB%BA2%E2%80%94%E2%80%94%E8%85%93%E9%AA%A8%E8%BF%91%E7%AB%AF%E9%AA%A8%E8%82%BF%E7%98%A4/" title="数字化重建2——腓骨近端骨肿瘤">数字化重建2——腓骨近端骨肿瘤</a><time datetime="2024-02-03T08:39:16.000Z" title="Created 2024-02-03 16:39:16">2024-02-03</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/drduxinhui/2024/02/03/%E4%B8%AA%E4%BA%BA%E7%85%A7%E7%89%87%E9%A1%B5/" title="个人照片页">个人照片页</a><time datetime="2024-02-02T23:37:15.000Z" title="Created 2024-02-03 07:37:15">2024-02-03</time></div></div></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>Archives</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/drduxinhui/archives/2024/04/"><span class="card-archive-list-date">April 2024</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/drduxinhui/archives/2024/02/"><span class="card-archive-list-date">February 2024</span><span class="card-archive-list-count">5</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/drduxinhui/archives/2024/01/"><span class="card-archive-list-date">January 2024</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/drduxinhui/archives/2023/12/"><span class="card-archive-list-date">December 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/drduxinhui/archives/2023/11/"><span class="card-archive-list-date">November 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/drduxinhui/archives/2023/10/"><span class="card-archive-list-date">October 2023</span><span class="card-archive-list-count">35</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/drduxinhui/archives/2023/09/"><span class="card-archive-list-date">September 2023</span><span class="card-archive-list-count">2</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article :</div><div class="item-count">47</div></div><div class="webinfo-item"><div class="item-name">UV :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">PV :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Last Push :</div><div class="item-count" id="last-push-date" data-lastPushDate="2024-04-29T03:54:59.355Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2024 By 杜鑫辉</div><div class="framework-info"><span>Framework </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>Theme </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="Switch Between Light And Dark Mode"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="Toggle between single-column and double-column"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="Setting"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="Back To Top"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/drduxinhui/js/utils.js"></script><script src="/drduxinhui/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js"></script><div class="js-pjax"><script>(() => {
  const $mermaid = document.querySelectorAll('#article-container .mermaid-wrap')
  if ($mermaid.length === 0) return
  const runMermaid = () => {
    window.loadMermaid = true
    const theme = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'default'

    Array.from($mermaid).forEach((item, index) => {
      const mermaidSrc = item.firstElementChild
      const mermaidThemeConfig = '%%{init:{ \'theme\':\'' + theme + '\'}}%%\n'
      const mermaidID = 'mermaid-' + index
      const mermaidDefinition = mermaidThemeConfig + mermaidSrc.textContent

      const renderFn = mermaid.render(mermaidID, mermaidDefinition)

      const renderV10 = () => {
        renderFn.then(({svg}) => {
          mermaidSrc.insertAdjacentHTML('afterend', svg)
        })
      }

      const renderV9 = svg => {
        mermaidSrc.insertAdjacentHTML('afterend', svg)
      }

      typeof renderFn === 'string' ? renderV9(renderFn) : renderV10()
    })
  }

  const loadMermaid = () => {
    window.loadMermaid ? runMermaid() : getScript('https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js').then(runMermaid)
  }

  btf.addModeChange('mermaid', runMermaid)

  window.pjax ? loadMermaid() : document.addEventListener('DOMContentLoaded', loadMermaid)
})()</script></div><script defer="defer" id="fluttering_ribbon" mobile="true" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-fluttering-ribbon.min.js"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>